package com.nuanshui.heatedloan.baseservice.dal.mapper;

import com.nuanshui.heatedloan.baseservice.form.ArticleForm;
import com.nuanshui.heatedloan.baseservice.model.ArticleType;
import com.nuanshui.heatedloan.baseservice.vo.ArticleTypeVO;
import com.nuanshui.heatedloan.baseservice.vo.ArticleVO;
import com.nuanshui.heatedloan.pageable.Pager;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ArticleMapper {

	ArticleVO loadArticleByAlias(@Param("alias") String alias);

	List<ArticleVO> loadArticle(Pager<ArticleVO> pager,ArticleForm articleForm);

	List<ArticleType> getArticleType(ArticleType articleType);

	List<ArticleTypeVO> getCatArticleList(@Param("catIds") List<String> catIds);

	/**
	 * 为具体展馆新增一类资讯动态
	 * @param articleType
	 */
	void saveArticleType(ArticleType articleType);

	/**
	 * 修改某一资讯分类
	 * @param articleType
	 */
	void updateArticleType(ArticleType articleType);

	/**
	 * 删除展馆中一类资讯动态
	 * @param id
	 */
	void deleteArticleTypeById(@Param("id") String id);

	void save(ArticleForm article);

	List<ArticleVO> getArticleListByType(@Param("typeId") String typeId, @Param("pager") Pager<ArticleVO> pager);

	ArticleVO loadVo(@Param("id") String id);

	/**
	 * 置为存档
	 * @author Gonzo
	 * @date 2017年1月3日下午3:02:55
	 * @param articleId
	 * @since 1.0.0
	 */
	void delete(@Param("articleId") String articleId);

	/**
	 * 上下架
	 * @author Gonzo
	 * @date 2017年1月3日下午4:05:51
	 * @param status
	 * @since 1.0.0
	 */
	void changeStatus(@Param("status") Integer status, @Param("articleId") String articleId);

	/**
	 * 更新
	 * @author Gonzo
	 * @date 2017年1月3日下午5:25:59
	 * @param form
	 * @since 1.0.0
	 */
	void update(ArticleForm form);

	/**
	 * 查询某一资讯下所包含的文章数量
	 * @param articleTypeId
	 * @return
	 */
	int countByArticleTypeId(@Param("articleTypeId") String articleTypeId);

}
